"""
名字管理练习：1801班所有的学生姓名
    1.查找学生姓名
        "张三"
    2.增加学生姓名
        "李四"
    3.修改学生姓名
        "王五"
    4.删除学生姓名
        ""
操作步骤
step1：显示提示信息
while True:
    step2：输入用户的选择
    step3：根据输入：1,2,3,4
    step4：显示列表
"""


# 增加学生
def add_studen():
    print('增加学生姓名:')
    print()
    stu = {}
    name = input('请输入要增加的学生姓名:')
    age = input('请输入要增加的学生年龄:')
    gender = input('请输入要增加的学生性别:,0代表女,1代表男')

    # 将 学生信息 添加到 stu 这个字典
    stu['name'] = name
    stu['age'] = age
    stu['gender'] = gender

    # 将字典添加到 name_list 中
    name_list.append(stu)


def remove_studen():
    name = input('请输入要删除的学生姓名:')
    # 删除列表中的一个元素
    for stu in name_list:
        if stu.get('name') == name:
            return stu, name

    return None, name


def query_studen():
    name = input('请输入要查询的学生姓名:')
    for stu in name_list:
        # print('stu:', stu)
        if stu.get('name') == name:
            # print('有这个人')
            # print(stu)  # 将此人信息打印出来
            return stu, name
    # print('没有找到', name, '这个人')
    return None, name


def change_studen():
    name = input('请输入要修改的学生姓名:')
    # if name in name_list:
    #     index_name = name_list.index(name)
    #     name_new = input('请输入要将原来的名字' + name + '改为:')
    #     name_list[index_name] = name_new
    # else:
    #     print('查无此人,请重新输入!')

    for stu in name_list:
        if stu.get('name') == name:
            # return stu,name
            name = input('要将' + name + '名字修改为:')
            stu['name'] = name
            age = input('要将' + name + '年龄修改为:')
            stu['age'] = age
            gender = input('要将' + name + '性别修改为:0 代表女,1 代表男')
            stu['gender'] = gender


print("=======1801班级学生名称管理系统=========")
print("1.代表增加学生姓名")
print("2.代表删除学生姓名")
print("3.代表修改学生姓名")
print("4.代表查询学生姓名")
print("5.代表退出系统")

stu1 = {
    'name': 'zhangsan',
    'age': 18,
    'gender': 0
}
stu2 = {
    'name': 'lisi',
    'age': 22,
    'gender': 1
}

name_list = [stu1, stu2]
print(name_list)

while True:
    input_num = int(input('请选择你的操作!'))
    print(name_list)
    if input_num == 1:
        # print('增加学生姓名:')
        # print()
        # name = input('请输入要增加的学生姓名:')
        # name_list.append(name)
        add_studen()
    elif input_num == 2:
        # 删除学生姓名
        # name = input('请输入要删除的学生姓名:')
        # # 删除列表中的一个元素
        # if name in name_list:
        #     name_list.remove(name)
        # else:
        #     print('查无此人')
        res, name = remove_studen()
        if res is not None:
            print('删除:', name)
            name_list.remove(res)
        else:
            print('没有', name, '这个人')
    elif input_num == 3:
        # 修改学生姓名
        # name = input('请输入要修改的学生姓名:')
        # if name in name_list:
        #     index_name = name_list.index(name)
        #     name_new = input('请输入要将原来的名字' + name + '改为:')
        #     name_list[index_name] = name_new
        # else:
        #     print('查无此人,请重新输入!')
        change_studen()
    elif input_num == 4:
        # 查询学生姓名
        # name = input('请输入要查询的学生姓名:')
        # if name in name_list:
        #     print(name_list.index(name))
        # else:
        #     print('没有这个人!')
        res, name = query_studen()
        # print(type(query_studen()))
        if res is not None:
            print('找到了,', name, res)
        else:
            print('没找到')
    elif input_num == 5:
        print('退出系统!')
        break
    print(name_list)

"""
改版学生管理系统
1 将具有某种特定功能的代码  抽取成为 函数

2 name_list ,name  --> name_list --> 字典, 字典中有个key 是name
['zhangsan','lisi']
[{'name': 'zhangsan', 'age': 18, 'gender': 0}, {'name': 'lisi', 'age': 22, 'gender': 1}]
"""
